package com.xbongbong.pro.statistic.help.strategy.chart;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.domain.entity.ChartEntity;
import com.xbongbong.pro.statistic.result.pojo.dto.ChartResultBaseDTO;
import com.xbongbong.pro.statistic.result.pojo.dto.ChartResultDTO;

import java.util.List;
import java.util.Map;

/**
 * 图表策略接口
 * @author xinpeng.jiang
 * @version V1.0
 * @date 2021/5/17 9:57
 * @since V1.0
 */
public interface ChartStrategyService {

    /**
     * 获取图表
     *
     * @param chartId
     * @param corpid
     * @return com.xbongbong.pro.domain.entity.ChartEntity
     * @author zcp
     * @version v1.0
     * @since v1.0
     */
    ChartEntity getByKey(Long chartId, String corpid);

    /**
     * 获取图表
     * @param chartResultBaseDTO 增加dto入参，用于在查询所有图表时区分系统or自定义图表
     * @return
     * @throws XbbException
     */
    List<ChartEntity> getChartList(ChartResultBaseDTO chartResultBaseDTO) throws XbbException;

    /**
     * 获取图表（传入自定义参数，为了特殊逻辑处理）
     * @param map 参数map
     * @return chart列表
     * @throws XbbException
     */
    List<ChartEntity> getChartList(Map<String, Object> map) throws XbbException;

    /**
     * 获取pk图表
     * @param chartResultDTO 增加dto入参，用于在查询所有图表时区分系统or自定义图表
     * @return
     * @throws XbbException
     */
    List<ChartEntity> getPkChartList(ChartResultDTO chartResultDTO) throws XbbException;

    /**
     * 跟新图表
     * @param entity 图表实体
     * @return
     * @throws XbbException
     */
    Integer updateChart(ChartEntity entity) throws XbbException;

    /**
     * 批量更新数值格式
     * @param chartResultDTO@throws XbbException
     */
    void batchUpdateNumFormat(ChartResultDTO chartResultDTO) throws XbbException;
}
